The present invention relates to the field of user interfaces for computer programs and operating systems. Many computer programs and operating systems display items in hierarchical views. In a hierarchical view, items may have ancestor or descendant items. Typically, hierarchical views of items attempt to show the relationships between items and their ancestor and descendant items.
Typical user interfaces have difficulty in presenting clear hierarchical views for large number of items or deep hierarchies. For example, one common type of hierarchical view presents items in an outline format, with descendant items listed below and indented from their ancestor item. However, if an ancestor item includes a large number of descendant items, there may not be sufficient space within a window or on the display to show all of the descendant items. As a result, a user may have to vertically scroll the hierarchical view to view some of the descendant items of an ancestor item. As the hierarchical view is scrolled, one or more levels of ancestor items, representing the previous levels of the hierarchy, may scroll off-screen. When this occurs, the typical hierarchical view does not provide any indication of the currently displayed items' location in the hierarchy of items.
This problem is exacerbated when displaying deep hierarchies of items, which have many levels of ancestors and descendants. In these situations, a set of descendant items may have many levels of ancestor items. However, as the user scrolls through the set of descendant items, some or all of these ancestor items are scrolled off-screen. This removes the context of these descendant items location in the hierarchy from the user interface.
Therefore, there is an unmet need for a user interface to present hierarchical views of items to users that presents ancestor-descendant relationships regardless of the number of items in a display or the depth of the hierarchy.